package org.yzh.protocol.commons.transform;

import io.github.yezhihao.protostar.PrepareLoadStrategy;
import io.github.yezhihao.protostar.ProtostarUtil;
import io.github.yezhihao.protostar.schema.MapSchema;
import io.github.yezhihao.protostar.schema.NumberSchema;
import org.yzh.protocol.commons.transform.attribute.*;

/**
 * 位置附加信息转换器(定位纽扣)
 * @author yezhihao
 * https://gitee.com/yezhihao/jt808-server
 */
public class AttributeConverterXY extends MapSchema<Number, Object> {

    public AttributeConverterXY() {
        super(NumberSchema.BYTE_INT, 1);
    }

    @Override
    protected void addSchemas(PrepareLoadStrategy<Number> schemaRegistry) {
        schemaRegistry
                .addSchema(AttributeXyKey.Electric, ProtostarUtil.getRuntimeSchema(Electric.class, 0))
                .addSchema(AttributeXyKey.WorkMode, NumberSchema.BYTE_INT)
                .addSchema(AttributeXyKey.StepNumber, NumberSchema.WORD_INT)
                .addSchema(AttributeXyKey.SignalStrength, NumberSchema.BYTE_INT)
                .addSchema(AttributeXyKey.GpsCount, NumberSchema.BYTE_INT)

                .addSchema(AttributeXyKey.WifiData, ProtostarUtil.getRuntimeSchema(WifiData.class, 0))
                .addSchema(AttributeXyKey.BaseStation4G, ProtostarUtil.getRuntimeSchema(BaseStation4GData.class, 0))
                .addSchema(AttributeXyKey.AlarmExt, NumberSchema.BYTE_INT)
                .addSchema(AttributeXyKey.FunStatus, NumberSchema.DWORD_INT)
                .addSchema(AttributeXyKey.Z_Flag, NumberSchema.BYTE_BYTE)
                .addSchema(AttributeXyKey.BaseStation2G, ProtostarUtil.getRuntimeSchema(BaseStation2GData.class, 0))
//                .addSchema(AttributeXyKey.AlarmExt, ProtostarUtil.getRuntimeSchema(AlarmExt.class, 0))

        ;
    }
}